require 'singleton'
require 'model/connection'
require 'model/candidato'

class CandidatoDao
  include Singleton

   def initialize
      self
   end

=begin
Author  : atila camurca
Date    : 31/05/2010
Version : 1.0
Return  : #Array #Candidato
Description
   Encontra todos os candidatos e os retorna em um #Array
=end
   def find_all
     sql = "select c.id, c.nome, p.sigla as partido from candidato c, partido p where p.id = c.id_partido and c.id <> 0"
     conn = Connection.instance.get_conn
     rst = conn.query(sql)
     a_candidato = Array.new
     rst.each do |row|
       candidato = Candidato.new
       candidato.id = row[0].to_i
       candidato.nome = row[1].to_s
       candidato.partido.sigla = row[2].to_s
       a_candidato.push candidato # Salva Cada Candidato no Array
     end
     rst.close
     a_candidato # Retorna o Array de Candidatos
   end

=begin
Author  : atila camurca
Date    : 31/05/2010
Version : 1.0
Return  : #Candidato
Description
   Encontra candidato a partir do nome.
Parameters
   nome #String : nome a ser procurado.
=end
   def find(nome) # Procura no Banco por nome.
     sql = "select c.nome, c.id, p.sigla from candidato c, partido p where c.nome = ? and p.id = c.id_partido"
     conn = Connection.instance.get_conn
     rst = conn.query(sql,nome)
     candidato = Candidato.new
     rst.each do |row|
       candidato.nome = row[0].to_s
       candidato.id = row[1].to_i
       candidato.partido.sigla = row[2].to_s
     end
     rst.close
     candidato # Retorna um array de candidatos
   end


   def column_names
     sql = "select c.id, c.nome, p.sigla as partido from candidato c, partido p"
     conn = Connection.instance.get_conn
     conn.query(sql).columns
   end
   
end
